package com.hmy.contract.service.contract;

import com.hmy.ccp.common.response.BasePageResponse;
import com.hmy.contract.bo.request.contract.*;
import com.hmy.contract.bo.response.contract.*;

import java.util.List;

public interface ISupplyContractService {


    /**
     * 增补合同创建
     *
     * @param createSupplyContractRequest 合同创建入参
     * @return {@link CreateSupplyContractResponse}
     */
    CreateSupplyContractResponse createSupplyContract(CreateSupplyContractRequest createSupplyContractRequest);

    /**
     * 获取增补合同信息
     *
     * @param supplyContractInfoRequest 获取合同信息入参
     * @return {@link SupplyContractInfoResponse}
     */
    SupplyContractInfoResponse getSupplyContractInfo(SupplyContractInfoRequest supplyContractInfoRequest);

    /**
     * 上传增补合同文件地址
     *
     * @param updateSupplyContractFileUrlRequest 更新增补合同文件地址入参
     * @return {@link UpdateFileUrlResponse}
     */
    UploadSupplyContractFileUrlResponse uploadSupplyContractFileUrl(UploadSupplyContractFileUrlRequest updateSupplyContractFileUrlRequest);

    /**
     * 增补合同分页查询
     *
     * @param supplyContractPageRequest 分页查询入参
     * @return {@link SupplyContractPageResponse}
     */
    BasePageResponse<SupplyContractPageResponse> page(SupplyContractPageRequest supplyContractPageRequest);

    /**
     * 变更增补合同签署方式
     * @param modifySupplyContractModelRequest 变更增补合同签署方式入参
     * @return {@link ModifySupplyContractModelResponse}
     */
    ModifySupplyContractModelResponse modifySupplyContractSignModel(ModifySupplyContractModelRequest modifySupplyContractModelRequest);

    List<Long> getWaitingCreateSupplyContract(Long count);

    void createSupplyContract(Long supplyContractId);

    void updateSupplyContractStatusFailed(Long supplyContractId);

    /**
     * feign接口-查询增补合同数据
     *
     * @param request
     * @return
     */
    SupplyContractInfoListResponse supplyContractInfoList(SupplyContractInfoListRequest request);


}
